package com.qf.proxy2;

import java.lang.reflect.Proxy;

//JDK动态代理
public class Test {
    public static void main(String[] args) {
        //通过动态代理模板类获取一个动态代理对象
        //参数:classLoader当前类的类加载器对象,鼠标工厂类实现的所有接口，实现InvocationHandler接口的代理生产模板类
            //注：正常来说这里不应该强转，应该就是获取的Object类，再通过反射执行对应方法
        MousePermission proxyInstance = (MousePermission)Proxy.newProxyInstance(Test.class.getClassLoader(),
                MouseFactory.class.getInterfaces(),
                new MouseProxy(new MouseFactory()));
        proxyInstance.saleMouse();
    }
}
